iT邦幫忙

0

[Day27]雲端寫code預測股價

  • 分享至 

  • xImage
  •  

參考資料
https://www.finlab.tw/%E8%B6%85%E7%B0%A1%E5%96%AE-machine-learning-%E9%A0%90%E6%B8%AC%E8%82%A1%E5%83%B9/
https://github.com/WillKoehrsen/Data-Analysis/tree/master/stocker
正文
今天這篇不用安裝程式,我們直接在雲端寫code,適合完完全全的初學者!
首先來說說什麼是MODEL(模型)?

模型就是一種能夠預測真實資料的數學公式,
通常會是一個function,例如 f 好了,
假如我們有一條時間序列 f(t) = at + b
只要知道了變數 a 跟 b,就可以計算出 t 每一刻的 f(t) 是多少

要怎麼知道 a 跟 b 是多少?
只要看其中兩個歷史時刻的位置即可:例如我們知道 f(1) = 1 且 f(2) = 2
則我們可以推算出 a = 1 且 b = 0,
並且預知 f(3) = 3 、 f(4) = 4 、 f(5) = 5 …

股價模型也是一樣,但是這個模型會比較複雜,不會只有 a、b 而已
不過規則是一樣的,我們要用歷史股價去計算類似 a、b 的變數,通常稱之為 fitting
找到 a、b 後就能夠用模型來預測股價了!
接著我們介紹一下預測股價的模型,預言家模型

預言家模型最厲害的地方,就是用多條 Fourier Series,去擬合(fitting)時間序列,有興趣可以參考 fb論文
可以將週期調整至「每年」「每季」「每週」!
模型簡單可以寫成這樣:f(t) = year(t) + season(t) + week(t) + trend(t)
甚至在fitting完(找到a、b等參數後)可以將 f(t) 的成分拆解出來看:
https://ithelp.ithome.com.tw/upload/images/20221207/20153234ug64MtBo8A.jpg
而最後的 f(t) 就是這些曲線的疊加,由上圖第三張,我們可以額外發現,聖誕節的時候,使用FB的人數下降非常快
外國的聖誕節,就是與家人團聚的時光,(像是我們的農曆新年)所以不太會用手機的緣故

回到正題,開始在雲端上寫code
https://colab.research.google.com/
打開連結,開啟新的notebook,在雲端寫程式!
首先在任意cell輸入:
!git clone https://github.com/koreal6803/Stocker.git
!pip install -r Stocker/requirements.txt
https://ithelp.ithome.com.tw/upload/images/20221207/20153234JK4yx1dEOY.jpg
接下來,刪除惱人的warrning
輸入:
import warnings
warnings.filterwarnings('ignore')
https://ithelp.ithome.com.tw/upload/images/20221207/201532348i84sgBh6F.jpg
接著讀入附帶的台積點股價
輸入:
import pandas as pd

df = pd.read_csv('Stocker/price.csv', index_col='date', parse_dates=['date'])
price = df.squeeze()
price.head()
https://ithelp.ithome.com.tw/upload/images/20221207/20153234murtB7yPwy.jpg
創建Stocker
Stocker下載連結在參考資料第二行
下載後,把股價的series丟進去就可以了:

from Stocker.stocker import Stocker
tsmc = Stocker(price)
https://ithelp.ithome.com.tw/upload/images/20221207/201532346MzaPMuoJ3.jpg
接下來我們就可以預測中期走勢,只需要輸入一行:

model, model_data = tsmc.create_prophet_model(days=90)
https://ithelp.ithome.com.tw/upload/images/20221207/20153234rzPIY35QFs.jpg
其中綠色的就是預測出來的股價,而淺綠色區域就是信賴區間,股價大約就會落於此區間內,程式中的信賴區間為80%,也代表了,每五天就約有一天的股價會落於信賴區間之外,可以看到預測時間越久(沒實際股價的地方),不確定性越大,所以綠色的區間也就稍微變大


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言